package com.fz.song.feibao.framework.common;

import java.util.LinkedHashMap;

/**
 * 统一返回值
 * {
 * "code":"0",
 * "msg":"成功/失败",
 * "token":xxxxxxxxx,
 * "data":{
 * "key":"value"
 * }
 * }
 */
public class R extends LinkedHashMap<String, Object> {
    /**
     * 默认方法ok
     *
     * @return
     */
    public static R ok() {
        R r = new R();
        r.put("code", 0);
        r.put("msg", "ok");
        return r;
    }

    /**
     * 自定义消息
     *
     * @param msg
     * @return
     */
    public static R ok(String msg) {
        R r = new R();
        r.put("code", 0);
        r.put("msg", msg);
        return r;
    }

    /**
     * 自定义值
     *
     * @param obj
     * @return
     */
    public static R ok(Object obj) {
        R r = new R();
        r.put("code", 0);
        r.put("msg", "ok");
        r.put("data", obj);
        return r;
    }

    /**
     * 自定义消息和值
     *
     * @param msg
     * @param obj
     * @return
     */
    public static R ok(String msg, Object obj) {
        R r = new R();
        r.put("code", 0);
        r.put("msg", msg);
        r.put("data", obj);
        return r;
    }

    /**
     * 失败:指定code,msg
     *
     * @param code
     * @param msg
     * @return
     */
    public static R fail(int code, String msg) {
        R r = new R();
        r.put("code", code);
        r.put("msg", msg);
        return r;
    }

    /**
     * 失败:指定code,msg,值
     *
     * @param code
     * @param msg
     * @param obj
     * @return
     */
    public static R fail(int code, String msg, Object obj) {
        R r = new R();
        r.put("code", code);
        r.put("msg", msg);
        r.put("data", obj);
        return r;
    }
}
